import java.util.ArrayList;
import java.util.List;

public class Test {
    public static List<Character> func(String str1, String str2) {
        List<Character> ret = new ArrayList<>();
        for (int i = 0; i < str1.length(); i++) {
            char ch = str1.charAt(i);
            if (!str2.contains(ch + "")) {
                ret.add(ch);
            }
        }
        return ret;
    }

    public static void main4(String[] args) {
        List<Character> ret1 = func("welcome to cvte", "come");
        for (char c : ret1) {
            System.out.println(c);
        }
    }

    //杨辉三角
    public static List<List<Integer>> generate(int numRows) {
        List<List<Integer>> ret = new ArrayList<>();
        List<Integer> list = new ArrayList<>();
        list.add(1);
        ret.add(list);

        for (int i = 1; i < numRows; i++) {
            //每循环一次就是一行
            List<Integer> numRow = new ArrayList<>();
            numRow.add(1);//添加每一行的第一个元素

            List<Integer> prevPow = ret.get(i - 1);
            for (int j = 1; j < i; j++) {
                int x = prevPow.get(j) + prevPow.get(j - 1);
                numRow.add(x);
            }
            ret.add(numRow);//处理中间的数字


            numRow.add(1);//处理最后一个数字

        }
        return ret;

    }
    //移除元素
    public int removeElement(int[] nums, int val) {
        int left = 0;
        int right = nums.length;
        while (left < right) {
            if (nums[left] == val) {
                nums[left] = nums[right - 1];
                right--;
            } else {
                left++;
            }
        }
        return left;
    }
    //删除有序数组中的重复项
    public int removeDuplicates(int[] nums) {
        int slow = 1;
        int n = nums.length;
        int fast = 1;
        for(fast = 1;fast < n;fast++){
            if(nums[fast] != nums[fast-1]){
                nums[slow] = nums[fast];
                slow++;
            }
        }
        return slow;
    }
    public void merge(int[] nums1, int m, int[] nums2, int n) {
        int p1 = m - 1;
        int p2 = n - 1;
        int p = m + n - 1;
        while (p2 >= 0) { // nums2 还有要合并的元素
            // 如果 p1 < 0，那么走 else 分支，把 nums2 合并到 nums1 中
            if (p1 >= 0 && nums1[p1] > nums2[p2]) {
                nums1[p--] = nums1[p1--]; // 填入 nums1[p1]
            } else {
                nums1[p--] = nums2[p2--]; // 填入 nums2[p1]
            }
        }

    }

    public static void main(String[] args) {
        MyArrayList myArrayList = new MyArrayList();
        myArrayList.add(1);
        myArrayList.add(2);
        myArrayList.add(3);
        myArrayList.add(4);
        myArrayList.add(5);
        myArrayList.add(2, 4);
        myArrayList.remove(1);
        myArrayList.display();
        List<List<Integer>> list = generate(5);
        System.out.println(list);
    }
}
